﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OWE.Core.Domain;
using OWE.Core.Common.Response;

namespace OWE.Service.Accounting
{
    public interface IAccountService
    {
        PrimitiveResponse InsertAccount(Account account);

        PrimitiveResponse UpdateAccount(Account account);

        PrimitiveResponse DeleteAccount(Account account);

        EntityResponse<Account> GetAccountById(int id);

        EntityListResponse<Account> GetAllAccounts();

        PrimitiveResponse InsertAccountType(AccountType account);

        PrimitiveResponse UpdateAccountType(AccountType account);

        PrimitiveResponse DeleteAccountType(AccountType account);

        EntityResponse<AccountType> GetAccountTypeById(int id);

        EntityListResponse<AccountType> GetAllAccountTypes();

        EntityListResponse<AccountMove> GetAllAccountsWithDebitCredits();
    }
}
